<?php
namespace tp5_lib\referral\logic;

use tp5_lib\user\model\UserModel;

class Referral
{
    /**
     * 标记推荐人
     * 当用户打开带有推荐人标记的链接时，标记推荐人
     */
    static public function mark()
    {
        if(!empty($_REQUEST["referral"])){
            session("referral",$_REQUEST["referral"]);
        }
    }
    /**
     * 新用户注册时，附加上推荐人
     */
    static public function append($user)
    {
        if(!$referral=session("referral")){
            $referral=0;
        }
        $user["referral"]=$referral;
        return $user;
    }
    /**
     * 在URL上添加推荐人参数
     * @todo 以后可以做的更复杂，将链接生成的时间，编号等加入到参数中
     */
    static public function url($url,$user)
    {
        $separator = strpos("?",$url) ===false ? "?" : "&";
        return $url.$separator."referral=".$user["id"];
    }
    /**
     * 写入推荐人
     */
    public function write($id)
    {
        $referral=$this->get();
        $user=new UserModel();
        $user->db()->where(["id"=>$id])->setField("referral",$referral);
    }
}
